package cn.gjsm.miukoo.demo;

import cn.gjsm.miukoo.Constants;
import com.theokanning.openai.OpenAiService;
import com.theokanning.openai.completion.CompletionRequest;

/**
 * @program: chatgpt
 * @description: demo
 * @author: Jiasen
 * @create: 2022-12-28 18:06
 **/
public class Test {
    //这段代码使用了 OpenAi 的 SDK，首先创建了一个 OpenAiService 对象，其中传入了一个令牌和一个超时时间，然后创建了一个 CompletionRequest 对象，这个对象用于向 OpenAI 请求完成文本的服务。CompletionRequest 对象包含了一些选项，比如使用的模型、提示文本、温度值、最大令牌数、频率惩罚和存在惩罚等。
    //
    //然后使用 service.createCompletion() 方法发起完成文本的请求，这个方法会返回一个 CompletionResponse 对象，最后使用 forEach() 方法将 CompletionResponse 对象中的选项遍历并打印出来。
    public static void main(String[] args) {
        // 创建OpenAiService对象，传入token和超时时间
        OpenAiService openAiService = new OpenAiService(Constants.OPENAPI_TOKEN, 60000);
        // 创建CompletionRequest对象，传入模型、提示、温度、最大token数、topP、频率惩罚和存在惩罚
        CompletionRequest completionRequest = CompletionRequest.builder().model("text-davinci-003").prompt("写一段Java二叉树代码").temperature(0.9D).maxTokens(1000).topP(1D).frequencyPenalty(0D).build();
        // 调用createCompletion方法，获取选择列表，并打印
         openAiService.createCompletion(completionRequest).getChoices().forEach(System.out::println);
    }

}
